/**
 * 版权所有 2009-2012山东新北洋信息技术股份有限公司
 * 保留所有权利。
 */
package com.linyaonan.leetcode.easy._965;

import java.util.HashSet;

/**
 * @ProjectName: leetcode
 * @Package: com.linyaonan.leetcode.easy._965
 * @ClassName: UnivaluedBinaryTree
 * @Author: linyaonan
 * @Date: 2020/1/8 18:13
 */
public class UnivaluedBinaryTree {
    HashSet<Integer> set = new HashSet<>();
    public boolean isUnivalTree(TreeNode root) {
        try {
            dfs(root);
        } catch (Exception e) {
            if ("get it".equals(e.getMessage())) {
                return false;
            }
        }
        return set.size() == 1;
    }

    private void dfs(TreeNode node) {
        if (node != null) {
            if (set.size() > 1) {
                throw new RuntimeException("get it");
            }
            set.add(node.val);
            dfs(node.left);
            dfs(node.right);
        }
    }
}
